/**
 * slice和splice
 */
var names = ['a', 'b', 'c', 'd', 'e']

//slice函数本身不会修改原来的数组，对于相同的一个数组，只要传入的参数确定，输出就是确定的
//slice函数本身就是一个纯函数
var newNames1 = names.slice(1, 3)
console.log(newNames1)
console.log(names)

//splice在执行时，会修改调用的数组本身，修改的这个操作就是产生的副作用
//splice不是一个纯函数
var newNames2 = names.splice(1, 3,)
console.log(newNames2)
console.log(names)
